简介

libcurl在开发当中还是比较常用的,最近做一个新feature有用到,在这里我把我学到的一些东西分享一下,也许其中有错误,欢迎指正。

全部内容来自libcurl的官方网站:libcurl

libcurl提供了一套名为“easy interface”的接口供使用。一个libcurl应用程序的生命周期应该是这样的:

  1. 调用init接口做初始化。
  2. 调用setopt接口设置一些发送请求的参数,当然,当response回来时调用的回调函数也是在这里。
  3. 调用perform接口发起请求。这个接口是阻塞的,当请求完成或者失败的情况下,这个调用才会返回。
  4. 当perform请求完成后,使用getinfo接口来获得这个请求的结果。
  5. 当所有的事情都完成之后,如果没有后续的事情要做,则调用cleanup接口来做最好的关闭清理工作。

libcurl 常用的API有下面这些:

  • curl_global_init()
  • curl_global_cleanup()
  • curl_easy_init()
  • curl_easy_cleanup()
  • curl_easy_setopt()
  • curl_easy_perform()
  • curl_easy_getinfo()